package com.eastedu.client.file.model;

import lombok.Data;

import java.util.Date;

/**
 * @author 袁松明
 */
@Data
public class FileSignatureResponse {

    /**
     * 存储桶区域信息
     */
    public Header header;

    /**
     * 签名信息,不同的签名方式，返回的结构不一样
     */
    public Signature signature;

    /**
     * 文件基本信息
     */
    public File file;

    @Data
    public static class Header {

        /**
         * 上传资源的储存地区信息，上传资源时必须返回
         */
        private String bucket;

        /**
         * 上传资源的储存区域信息，上传资源时必须返回
         */
        private String region;
    }

    @Data
    public static class Signature {
        /**
         * 签名生成时间戳
         */
        private Long iat;

        /**
         * 签名到期时间戳
         */
        private Long exp;

        /**
         * 上传签名信息
         */
        private String signature;

        /**
         * 文档未给出解释
         */
        private Long subAppId;

        /**
         * 文档未给出解释
         */
        private String sessionToken;

        /**
         * 文档未给出解释
         */
        private String tmpSecretId;

        /**
         * 文档未给出解释
         */
        private String tmpSecretKey;
    }

    @Data
    public static class File {

        /**
         * 文件ID
         */
        private String id;

        /**
         * 文件大小
         */
        private Long size;

        /**
         * 文件MD5
         */
        private String md5;

        /**
         *
         */
        private String extension;

        /**
         * 文件名称
         */
        private String filename;

        /**
         * 文件路径
         */
        private String path;

        /**
         * 服务地址
         */
        private String server;

        /**
         * 文件状态，
         * -1-文件处理失败，0-文件上传中，1-文件已上传，2-文件已归档，3-文件已删除
         */
        private String state;

        /**
         * 云服务提供商
         */
        private String provider;

        /**
         * 更新时间
         */
        private Date updateTime;

        /**
         * 创建时间
         */
        private Date createTime;
    }
}
